home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / OEMNADAR.IN_ / oemnadar.inf
INI File  |  1996-07-12  |  41KB  |  969 lines

  1. [FileConstants]
  2.    Manufacturer             = "Thomas-Conrad"
  3.    TccBaseName              = "tcarc"
  4.    SoftwareMajorVersion     = "4"
  5.    SoftwareMinorVersion     = "0"
  6.    InterruptTextList        = ^(InterruptChoices, 1)
  7.    InterruptValueList       = ^(InterruptChoices, 2)
  8.    IoBaseTextList           = ^(IoBaseChoices, 1)
  9.    IoBaseValueList          = ^(IoBaseChoices, 2)
  10.    MemoryBaseTextList       = ^(MemoryBaseChoices, 1)
  11.    MemoryBaseValueList      = ^(MemoryBaseChoices, 2)
  12.    EisaSlotTextList         = ^(EisaSlotChoices, 1)
  13.    EisaSlotValueList        = ^(EisaSlotChoices, 2)
  14.    NetEventDLL              = "%SystemRoot%\System32\netevent.dll"
  15.    IoLogMsgDLL              = "%SystemRoot%\System32\IoLogMsg.dll"
  16.    UtilityInf               = "UTILITY.INF"
  17.    SubroutineInf            = "SUBROUTN.INF"
  18.    SoftwareType             = "driver"
  19.    Exit_Code                = 0
  20.    SoftwareVersion          = $(SoftwareMajorVersion)"."$(SoftwareMinorVersion)
  21.    SoftwareImage            = "\SystemRoot\System32\drivers\"$(TccBaseName)".sys"
  22.    NetRuleSoftwareType      = $(TccBaseName)"Sys ndisDriver "$(TccBaseName)"Driver"
  23.    NetRuleSoftwareBindForm  = """"$(TccBaseName)"Sys"" yes no container"
  24.    NetRuleSoftwareBindable  = {""$(TccBaseName)"Driver "$(TccBaseName)"Adapter non exclusive 100"}
  25.    NetRuleSoftwareClass     = {""$(TccBaseName)"Driver basic"}
  26.    NetRuleSoftwareUse       = $(SoftwareType)
  27.    NetRuleHardwareType      = $(TccBaseName)" "$(TccBaseName)"Adapter"
  28.    NetRuleHardwareClass     = {""$(TccBaseName)"Adapter basic"}
  29.    NetRuleHardwareBindForm  = " yes yes container"
  30.    ProductOpSupport     = 134 
  31.    KeyName_SoftwareRoot     = $(!NTN_SoftwareBase)"\"$(Manufacturer)
  32.    KeyName_Software         = $(KeyName_SoftwareRoot)"\"$(TccBaseName)"\CurrentVersion"
  33. [InterruptChoices]
  34.    Interrupt_1  = "2/9",  2
  35.    Interrupt_2  = "3"  ,  3
  36.    Interrupt_3  = "4"  ,  4
  37.    Interrupt_4  = "5"  ,  5
  38.    Interrupt_5  = "6"  ,  6
  39.    Interrupt_6  = "7"  ,  7
  40.    Interrupt_7  = "10" , 10
  41.    Interrupt_8  = "11" , 11
  42.    Interrupt_9  = "12" , 12
  43.    Interrupt_10 = "14" , 14
  44.    Interrupt_11 = "15" , 15
  45. [MemoryBaseChoices]  
  46.    MemoryBaseChoice_1 = "C0000", 49152
  47.    MemoryBaseChoice_2 = "C4000", 50176
  48.    MemoryBaseChoice_3 = "C8000", 51200
  49.    MemoryBaseChoice_4 = "CC000", 52224
  50.    MemoryBaseChoice_5 = "D0000", 53248
  51.    MemoryBaseChoice_6 = "D4000", 54272
  52.    MemoryBaseChoice_7 = "D8000", 55296
  53.    MemoryBaseChoice_8 = "DC000", 56320
  54. [IoBaseChoices]  
  55.    IoBaseChoice_1 = "260", 608
  56.    IoBaseChoice_2 = "290", 656
  57.    IoBaseChoice_3 = "2E0", 736
  58.    IoBaseChoice_4 = "2F0", 752
  59.    IoBaseChoice_5 = "300", 768
  60.    IoBaseChoice_6 = "350", 848
  61.    IoBaseChoice_7 = "380", 896
  62.    IoBaseChoice_8 = "3E0", 992
  63. [EisaSlotChoices]
  64.    EisaSlot_1  = "1",    1
  65.    EisaSlot_2  = "2",    2
  66.    EisaSlot_3  = "3"  ,  3
  67.    EisaSlot_4  = "4"  ,  4
  68.    EisaSlot_5  = "5"  ,  5
  69.    EisaSlot_6  = "6"  ,  6
  70.    EisaSlot_7  = "7"  ,  7
  71.    EisaSlot_8  = "8"  ,  8
  72.    EisaSlot_9  = "9"  ,  9
  73.    EisaSlot_10 = "10" , 10
  74.    EisaSlot_11 = "11" , 11
  75.    EisaSlot_12 = "12" , 12
  76. [TcarcIsaDlg]
  77.    DlgType                 = "RadioCombination"
  78.    Label1                  = $(InterruptLabel)
  79.    Label2                  = $(BaseIoLabel)
  80.    Label3                  = $(MemoryLabel)
  81.    DlgTemplate             = "UBNDIS"
  82.    Caption                 = $(FunctionTitle)
  83.    Combo1List              = $(InterruptTextList)
  84.    Combo1Out               = $(InterruptTextDlgDefault)
  85.    Combo2List              = $(IoBaseTextList)
  86.    Combo2Out               = $(IoBaseTextDlgDefault)
  87.    Combo3List              = $(MemoryBaseTextList)
  88.    Combo3Out               = $(MemoryBaseTextDlgDefault)
  89.    RadioIn                 = {}
  90.    ComboListItemsIn        = {Combo1List,Combo2List,Combo3List}
  91.    ComboListItemsOut       = {Combo1Out,Combo2Out,Combo3Out}
  92.    CBOptionsGreyed         = {}
  93.    EditTextIn              = ""
  94.    EditTextLim             = ""
  95.    NotifyFields            = {NO, NO, NO}
  96.    HelpContext             = $(!IDH_DB_OEMNADAR1_INS) 
  97. [TcnsIsaDlg]
  98.    DlgType                 = "RadioCombination"
  99.    Label1                  = $(InterruptLabel)
  100.    Label2                  = $(BaseIoLabel)
  101.    Label3                  = $(MemoryLabel)
  102.    DlgTemplate             = "UBNDIS"
  103.    Caption                 = $(TcnsCaption)
  104.    Combo1List              = $(InterruptTextList)
  105.    Combo1Out               = $(InterruptTextDlgDefault)
  106.    Combo2List              = $(IoBaseTextList)
  107.    Combo2Out               = $(IoBaseTextDlgDefault)
  108.    Combo3List              = $(MemoryBaseTextList)
  109.    Combo3Out               = $(MemoryBaseTextDlgDefault)
  110.    RadioIn                 = {}
  111.    ComboListItemsIn        = {Combo1List,Combo2List,Combo3List}
  112.    ComboListItemsOut       = {Combo1Out,Combo2Out,Combo3Out}
  113.    CBOptionsGreyed         = {}
  114.    EditTextIn              = ""
  115.    EditTextLim             = ""
  116.    NotifyFields            = {NO, NO, NO}
  117.    HelpContext             = $(!IDH_DB_OEMNADAR2_INS)  
  118. [TcnsEisaDlg]
  119.    DlgType                 = "RadioCombination"
  120.    Label1                  = $(SlotNumberLabel)
  121.    DlgTemplate             = "SINGLE_COMBO"
  122.    Caption                 = $(TcnsEISACaption)
  123.    Combo1List              = $(EisaSlotTextList)
  124.    Combo1Out               = $(EisaSlotTextDlgDefault)
  125.    RadioIn                 = {}
  126.    ComboListItemsIn        = {Combo1List}
  127.    ComboListItemsOut       = {Combo1Out}
  128.    CBOptionsGreyed         = {}
  129.    EditTextIn              = ""
  130.    EditTextLim             = ""
  131.    NotifyFields            = {NO}
  132.    HelpContext             = $(!IDH_DB_OEMNADAR3_INS)  
  133. [Identify]
  134.    set Status          = STATUS_SUCCESSFUL
  135.    set Identifier      = NetAdapter
  136.    set Media           = #("Source Media Descriptions", 1, 1)
  137.    Return $(Status) $(Identifier) $(Media)
  138. [ReturnOptions]
  139.    set Status          = STATUS_FAILED
  140.    set OptionList      = {}
  141.    set OptionTextList  = {}
  142.    set LanguageList    = ^(LanguagesSupported, 1)
  143.    Ifcontains(i) $($0) in $(LanguageList)
  144.       ifstr(i) $($1) == ""
  145.          goto ReturnOptions_Set
  146.       endif
  147.       set PlatformList = ^(PlatformsSupported, 1)
  148.       Ifcontains(i) $($1) in $(PlatformList)
  149.          goto ReturnOptions_Set
  150.       else
  151.          set Status = STATUS_NOTSUPPORTED
  152.          goto ReturnOptions_Exit
  153.       endif
  154.    else
  155.       set Status = STATUS_NOLANGUAGE
  156.       goto ReturnOptions_Exit
  157.    endif
  158. ReturnOptions_Set = +
  159.     set OptionList      = ^(OptList$($0), 1)
  160.     set OptionTextList  = ^(OptList$($0), 2)
  161.     set Status          = STATUS_SUCCESSFUL
  162. ReturnOptions_Exit = +
  163.     Return $(Status) $(OptionList) $(OptionTextList)
  164. [GeneralConstants]
  165.    from                     = ""
  166.    to                       = ""
  167.    ExitCodeOk               = 0
  168.    ExitCodeCancel           = 1
  169.    ExitCodeFatal            = 2
  170.    Key_Null                 = ""
  171.    MAXIMUM_ALLOWED          = 33554432
  172.    RegistryErrorIndex       = NO_ERROR
  173.    Key_Product              = ""
  174.    Key_HardwareParameters   = ""
  175.    TRUE                     = 1
  176.    FALSE                    = 0
  177.    NoTitle                  = 0
  178.    ExitState                = "Active"
  179.    OldVersionExisted        = $(FALSE)
  180.    DriverPath               = $(!STF_NTPATH)\drivers
  181. [date]                     
  182.    Now                      = {} ? $(!LIBHANDLE) GetSystemDate
  183. [PlatformsSupported]
  184.    ISA
  185.    EISA
  186.    MCA
  187. [Install-Option]
  188.    Debug-Output "$(STF_CONTEXTINFNAME): Entering Install-Option"
  189.    set STF_VITAL = ""
  190.    ifstr(i) $(AddCopy) == "YES"
  191.       set STF_VITAL = "YES"
  192.       AddSectionFilesToCopyList Files-Driver $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  193.    endif
  194.    ifstr(i) $(DoCopy) == "YES"
  195.       set STF_VITAL = "YES"
  196.       set !STF_NCPA_FLUSH_COPYLIST = TRUE
  197.       CopyFilesInCopyList
  198.    endif
  199.    ifstr(i) $(DoConfig) == "YES"
  200.    endif
  201.    exit
  202. [Install-Update]
  203.    Debug-Output "$(STF_CONTEXTINFNAME): Entering Install-Update"
  204.    set STF_VITAL        = "YES"
  205.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  206.    AddSectionFilesToCopyList Files-Driver  $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  207.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  208.    CopyFilesInCopyList
  209.    exit
  210. [InstallOption]
  211.    set TccOption = $($1)
  212.    set SrcDir    = $($2)
  213.    set AddCopy   = $($3)
  214.    set DoCopy    = $($4)
  215.    set DoConfig  = $($5)
  216.    Debug-Output "$(STF_CONTEXTINFNAME): Entering InstallOption"
  217.    Debug-Output "$(STF_CONTEXTINFNAME): STF_CWDIR: .$(!STF_CWDIR)."
  218.    Debug-Output "$(STF_CONTEXTINFNAME): STF_LANGUAGE: .$(!STF_LANGUAGE)."
  219.    Debug-Output "$(STF_CONTEXTINFNAME): !NTN_RegBase .$(!NTN_RegBase)."
  220.    Debug-Output "$(STF_CONTEXTINFNAME): !NTN_SoftwareBase .$(!NTN_SoftwareBase)."
  221.    Debug-Output "$(STF_CONTEXTINFNAME): TccOption: .$(TccOption). SrcDir: .$(SrcDir)."
  222.    Debug-Output "$(STF_CONTEXTINFNAME): AddCopy: .$(AddCopy). DoCopy: .$(DoCopy). DoConfig: .$(DoConfig)."
  223.    set LanguageList = ^(LanguagesSupported, 1)
  224.    Ifcontains(i) $($0) NOT-IN $(LanguageList)
  225.       Return STATUS_NOLANGUAGE
  226.    endif
  227.    set-subst LF = "\n"
  228.    read-syms GeneralConstants
  229.    read-syms FileConstants
  230.    set OptionNameList           = ^(OptList$(!STF_LANGUAGE), 1 )
  231.    set OptionHdwrNameList       = ^(OptList$(!STF_LANGUAGE), 3 )
  232.    set OptionHdwrTitleList      = ^(OptList$(!STF_LANGUAGE), 4 )
  233.    set OptionHdwrDescList       = ^(OptList$(!STF_LANGUAGE), 5 )
  234.    set ProductHdwrName          = *($(OptionHdwrNameList),+
  235.                                   ~($(OptionNameList), $($1)))
  236.    set ProductHdwrTitle         = *($(OptionHdwrTitleList),+
  237.                                   ~($(OptionNameList), $($1)))
  238.    set ProductHdwrDesc          = *($(OptionHdwrDescList),+
  239.                                   ~($(OptionNameList), $($1)))
  240.    Debug-Output "$(STF_CONTEXTINFNAME): ProductHdwrName .$(ProductHdwrName)."
  241.    Debug-Output "$(STF_CONTEXTINFNAME): ProductHdwrTitle .$(ProductHdwrTitle)."
  242.    Debug-Output "$(STF_CONTEXTINFNAME): ProductHdwrDesc .$(ProductHdwrDesc)."
  243.    read-syms DialogConstants$(!STF_LANGUAGE)
  244.    ifstr(i) $(!NTN_Origination) == "NCPA"
  245.       set Continue = "OK"
  246.    endif
  247.    read-syms FileConstants$(!STF_LANGUAGE)
  248.    detect date
  249.    set-title $(FunctionTitle)
  250.    set to   = InstallOptionDispatch
  251.    set from = InstallOptionDispatch
  252.    set CommonStatus = STATUS_SUCCESSFUL
  253.    EndWait
  254. InstallOptionDispatch = +
  255.    Debug-Output "$(STF_CONTEXTINFNAME): Entering InstallOptionDispatch"
  256.    Ifstr(i) $(!NTN_InstallMode) == deinstall
  257.       set StartLabel = RemoveAdapterFromRegistry
  258.    else-Ifstr(i) $(!NTN_InstallMode) == Update
  259.       set StartLabel = UpgradeSoftware
  260.    else-Ifstr(i) $(!NTN_InstallMode) == bind
  261.       set StartLabel = CheckAdapterBinding
  262.    else-Ifstr(i) $(!NTN_InstallMode) == configure
  263.       set StartLabel = GetAdapterConfigFromRegistry
  264.       Ifstr(i) $(KeyName_Software) == $(!NTN_RegBase)
  265.          Debug-Output "$(STF_CONTEXTINFNAME): Cannot configure driver software."
  266.          Shell $(UtilityInf), RegistryErrorString, CANNOT_CONFIGURE_SOFTWARE
  267.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  268.             set ShellErrorSection = UtilityInf:RegistryErrorString
  269.             goto ShellCodeError
  270.          endif
  271.          set Error = $($R0)
  272.          set from = InstallOptionExit
  273.          set to = InstallOptionExit
  274.          goto SetNonFatalInfo
  275.       endif
  276.    else
  277.       set StartLabel = TestForExistingInstallation
  278.       set OEM_ABANDON_OPTIONS = {}
  279.       set OEM_ABANDON_SOFTWARE = FALSE
  280.       set OEM_ABANDON_ON = TRUE
  281.    endif
  282.    set InterruptValue         = 2
  283.    set MemoryBaseValue        = 53248
  284.    set IoBaseValue            = 736
  285.    set SlotNumberValue        = 1
  286.    set BusNumberValue         = 0
  287.    set BusTypeValue           = 1
  288.    set MediaTypeValue         = 8
  289.    set PacketSizeValue        = 1024
  290.    set NdisInterfaceIsa       = 1
  291.    set NdisInterfaceEisa      = 2
  292.    set Tc3047EisaIdValue      = 1349464391
  293.    set Tc3147EisaIdValue      = 1349464135
  294.    set from                   = $(FatalError)
  295.    set to                     = $(FatalError)
  296.    goto $(StartLabel)
  297. TestForExistingInstallation = +
  298.    set OldVersionExisted = $(FALSE)
  299.    Debug-Output "$(STF_CONTEXTINFNAME): Entering TestForExistingInstallation"
  300.    OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_Software) $(MAXIMUM_ALLOWED) Key_Product
  301.    Ifstr $(Key_Product) != $(Key_Null)
  302.       CloseRegKey $(Key_Product)
  303.       ifstr(i) $(!NTN_RegBase) == $(KeyName_Software)
  304.          Shell $(UtilityInf), VerExistedDlg, $(SoftwareTitle), $(SoftwareVersion)
  305.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  306.             set ShellErrorSection = UtilityInf:VerExistedDlg
  307.             goto ShellCodeError
  308.          endif
  309.          goto end
  310.       else
  311.          Shell $(UtilityInf), CardExistedDlg
  312.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  313.             set ShellErrorSection = UtilityInf:CardExistedDlg
  314.             goto ShellCodeError
  315.          endif
  316.          ifstr(i) $($R1) == "OK"
  317.             set OldVersionExisted = $(TRUE)
  318.          else
  319.             goto InstallOptionExit
  320.          endif
  321.       endif
  322.    endif
  323. CopyAdapterFiles = +
  324.    Debug-Output "$(STF_CONTEXTINFNAME): Entering CopyAdapterFiles"
  325.    ifint $(OldVersionExisted) == $(TRUE)
  326.       ifstr(i) $(!NTN_InstallMode) == configure
  327.          goto GetAdapterConfigFromUser
  328.       endif
  329.    endif
  330.    StartWait
  331.    ifint $(OldVersionExisted) == $(FALSE)
  332.       ifstr(i) $(!NTN_InstallMode) == "install"
  333.          Ifstr(i) $(DoCopy) == "YES"
  334.             Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  335.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  336.                set ShellErrorSection = UtilityInf:DoAskSource
  337.                Goto ShellCodeError
  338.             Else-Ifstr(i) $($R0) == STATUS_FAILED
  339.                Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  340.                ifint $($ShellCode) != $(!SHELL_CODE_OK)
  341.                   set ShellErrorSection = UtilityInf:RegistryErrorString
  342.                   goto ShellCodeError
  343.                endif
  344.                set Error = $($R0)
  345.                Goto FatalError
  346.             Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  347.                Goto ProcessSuccessExit
  348.             Endif
  349.             Set SrcDir = $($R1)
  350.          Endif
  351.          install "Install-Option"
  352.          ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  353.             Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  354.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  355.                set ShellErrorSection = UtilityInf:RegistryErrorString
  356.                goto ShellCodeError
  357.             endif
  358.             set Error = $($R0)
  359.             goto FatalError
  360.          endif
  361.       endif
  362.    endif
  363. GetAdapterConfigFromRegistry = +
  364.    Debug-Output "$(STF_CONTEXTINFNAME): Entering GetAdapterConfigFromRegistry"
  365.    ifstr(i) $(!NTN_InstallMode) == "install"
  366.       goto GetAdapterConfigFromUser
  367.    else
  368.       Ifstr $(Key_Product) == $(Key_Null)
  369.          OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) Key_Product
  370.          Ifstr $(Key_Product) == $(Key_Null)
  371.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  372.             Debug-Output $(STF_CONTEXTINFNAME)": Cannot find component product key"
  373.             goto FatalRegistryError
  374.          Endif
  375.       Endif
  376.       Shell $(UtilityInf) FindService, $(Key_Product)
  377.       Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  378.          set ShellErrorSection = UtilityInf:FindService
  379.          Goto ShellCodeError
  380.       Endif
  381.       Ifstr(i) $($R0) != NO_ERROR
  382.          Debug-Output "$(STF_CONTEXTINFNAME): Utility:FindService error: $($R0)"
  383.          Goto FatalRegistryError
  384.       endif
  385.       set Key_HardwareParameters = $($R2)
  386.       CloseRegKey $($R1)
  387.       Ifstr $(Key_HardwareParameters) == $(Key_Null)
  388.          set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  389.          Debug-Output $(STF_CONTEXTINFNAME)": Cannot find component service"
  390.          goto FatalRegistryError
  391.       endif
  392.       set OldVersionExisted = $(TRUE)
  393.       set ValueName = ""
  394.       set ValueData = ""
  395.       set ValueStr  = ""
  396.       set ValueList = {}
  397.       EnumRegValue $(Key_HardwareParameters) ValueList
  398.       ForListDo $(ValueList)
  399.          set ValueItem = $($)
  400.          set ValueName = *($(ValueItem),1)
  401.          set ValueData = *($(ValueItem),4)
  402.          Ifstr(i) $(ValueName) == "AdapterType"
  403.             set AdapterTypeValue  = $(ValueData)
  404.          else-Ifstr(i) $(ValueName) == "BusNumber"
  405.             set BusNumberValue  = $(ValueData)
  406.          else-Ifstr(i) $(ValueName) == "BusType"
  407.             set BusTypeValue  = $(ValueData)
  408.          else-Ifstr(i) $(ValueName) == "Interrupt"
  409.             set InterruptValue  = $(ValueData)
  410.          else-Ifstr(i) $(ValueName) == "IoBase"
  411.             set IoBaseValue  = $(ValueData)
  412.          else-Ifstr(i) $(ValueName) == "MediaType"
  413.             set MediaTypeValue = $(ValueData)
  414.          else-Ifstr(i) $(ValueName) == "MemoryBase"
  415.             set MemoryBaseValue  = $(ValueData)
  416.          else-Ifstr(i) $(ValueName) == "PacketSize"
  417.             set PacketSizeValue  = $(ValueData)
  418.          else-Ifstr(i) $(ValueName) == "SlotNumber"
  419.             set SlotNumberValue = $(ValueData)
  420.          endif
  421.          Debug-Output "$(STF_CONTEXTINFNAME): $(ValueName) == .$(ValueData)."
  422.       EndForListDo
  423.    Endif
  424. GetAdapterConfigFromUser = +
  425.    Debug-Output "$(STF_CONTEXTINFNAME): Entering GetAdapterConfigFromUser"
  426.    set from = GetAdapterConfigFromUser
  427.    set InterruptTextDlgDefault      = *($(InterruptTextList),+
  428.                                       ~($(InterruptValueList), +
  429.                                        $(InterruptValue)))
  430.    set MemoryBaseTextDlgDefault     = *($(MemoryBaseTextList),+
  431.                                       ~($(MemoryBaseValueList), +
  432.                                        $(MemoryBaseValue)))
  433.    set IoBaseTextDlgDefault         = *($(IoBaseTextList),+
  434.                                       ~($(IoBaseValueList), +
  435.                                        $(IoBaseValue)))
  436.    set SlotTextDlgDefault           = ~($(SlotSupportValueList), +
  437.                                        $(SlotSupportValue))
  438.    ifstr(i) $(TccOption) == "tc$arcnet"
  439.       read-syms TcarcIsaDlg
  440.    else-ifstr(i) $(TccOption) == "tc$tcns"
  441.       read-syms TcnsIsaDlg
  442.    else-ifstr(i) $(TccOption) == "tc$3147"
  443.       read-syms TcnsEisaDlg
  444.    else
  445.       read-syms TcarcIsaDlg
  446.    endif
  447.    ui start "InputDlg"
  448.    ifstr(i) $(DLGEVENT) == "CONTINUE"
  449.       ifstr(i) $(TccOption) == "tc$3147e"
  450.          set SlotNumberValue  = *($(SlotValueList),+
  451.                                 ~($(SlotTextList),+
  452.                                 $(Combo1Out)))
  453.       else
  454.          set InterruptValue   = *($(InterruptValueList),+
  455.                                 ~($(InterruptTextList),+
  456.                                   $(Combo1Out)))
  457.          set IoBaseValue      = *($(IoBaseValueList),+
  458.                                 ~($(IoBaseTextList),+
  459.                                  $(Combo2Out)))
  460.          set MemoryBaseValue  = *($(MemoryBaseValueList),+
  461.                                 ~($(MemoryBaseTextList),+
  462.                                  $(Combo3Out)))
  463.       endif
  464.       ui pop 1
  465.       Debug-Output "$(STF_CONTEXTINFNAME): After Dialog..."
  466.       Debug-Output "$(STF_CONTEXTINFNAME): InterruptValue  == .$(InterruptValue)."
  467.       Debug-Output "$(STF_CONTEXTINFNAME): IoBaseValue     == .$(IoBaseValue)."
  468.       Debug-Output "$(STF_CONTEXTINFNAME): MemoryBaseValue == .$(MemoryBaseValue)."
  469.       Debug-Output "$(STF_CONTEXTINFNAME): SlotValue       == .$(SlotValue)."
  470.    else-ifstr(i) $(DLGEVENT) == "CANCEL"
  471.       set CommonStatus = STATUS_USERCANCEL
  472.       Debug-Output "$(STF_CONTEXTINFNAME): Dialog Action Exit. Bye."
  473.       ui pop 1
  474.       goto InstallOptionExit
  475.    else
  476.       set CommonStatus = STATUS_USERCANCEL
  477.       ui pop 1
  478.       Debug-Output "$(STF_CONTEXTINFNAME): Dialog Action Unknown.  Bye."
  479.       goto InstallOptionExit
  480.    endif
  481. AddAdapterSoftwareToRegistry = +
  482.    Ifstr(i) $(!NTN_InstallMode) == configure
  483.       goto AddAdapterConfigurationToRegistry
  484.    Endif
  485.    ifint $(OldVersionExisted) == $(TRUE)
  486.       goto AddAdapterHardwareToRegistry
  487.    Endif
  488.    Shell $(UtilityInf), +
  489.          AddSoftwareComponent, +
  490.          $(Manufacturer), +
  491.          $(TccBaseName), +
  492.          $(TccBaseName), +
  493.          $(SoftwareTitle), +
  494.          $(STF_CONTEXTINFNAME), +
  495.          $(SoftwareImage), +
  496.          "kernel", "NDIS", {}, "",+
  497.          $(NetEventDLL)
  498.    Set OEM_ABANDON_SOFTWARE = TRUE
  499.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  500.       set ShellErrorSection = UtilityInf:AddSoftwareComponent
  501.       goto ShellCodeError
  502.    endif
  503.    set RegistryErrorIndex = $($R0)
  504.    Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  505.       EndWait
  506.       Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterSoftware - add component error"
  507.       CloseRegKey $($R1)
  508.       CloseRegKey $($R2)
  509.       CloseRegKey $($R3)
  510.       CloseRegKey $($R4)
  511.       CloseRegKey $($R5)
  512.       goto FatalRegistryError
  513.    endif
  514.    Set Key_SoftwareProduct    = $($R1)
  515.    Set Key_SoftwareNetRules   = $($R2)
  516.    CloseRegKey $($R3)
  517.    CloseRegKey $($R4)
  518.    CloseRegKey $($R5)
  519.    set NewValueList = {+
  520.        {SoftwareType, $(NoTitle), $(!REG_VT_SZ),    $(SoftwareType)},+
  521.        {MajorVersion, $(NoTitle), $(!REG_VT_DWORD), $(SoftwareMajorVersion)},+
  522.        {MinorVersion, $(NoTitle), $(!REG_VT_DWORD), $(SoftwareMinorVersion)},+
  523.        {Title,        $(NoTitle), $(!REG_VT_SZ),    $(SoftwareTitle)},+
  524.        {Description,  $(NoTitle), $(!REG_VT_SZ),    $(SoftwareDescription)},+
  525.        {ServiceName,  $(NoTitle), $(!REG_VT_SZ),    $(TccBaseName)},+
  526.        {InstallDate,  $(NoTitle), $(!REG_VT_DWORD), *($(Now),1)}+
  527.        }
  528.    Shell  $(UtilityInf), AddValueList, $(Key_SoftwareProduct), $(NewValueList)
  529.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  530.       set ShellErrorSection = UtilityInf:AddValueList
  531.       goto ShellCodeError
  532.    endif
  533.    Set RegistryErrorIndex = $($R0)
  534.    Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  535.       EndWait
  536.       Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterSoftware - add value list error"
  537.       CloseRegKey $(Key_SoftwareProduct)
  538.       CloseRegKey $(Key_SoftwareNetRules)
  539.       goto FatalRegistryError
  540.    endif
  541.    Set NewValueList = {+
  542.        {type,      $(NoTitle), $(!REG_VT_SZ),       $(NetRuleSoftwareType)},+
  543.        {use,       $(NoTitle), $(!REG_VT_SZ),       $(NetRuleSoftwareUse)}, +
  544.        {bindform,  $(NoTitle), $(!REG_VT_SZ),       $(NetRuleSoftwareBindForm)}, +
  545.        {class,     $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareClass)}, +
  546.        {bindable,  $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRuleSoftwareBindable)}, +
  547.        {InfOption, $(NoTitle), $(!REG_VT_SZ),       $(TccOption)}+
  548.        }
  549.    Shell  $(UtilityInf), AddValueList, $(Key_SoftwareNetRules), $(NewValueList)
  550.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  551.       set ShellErrorSection = UtilityInf:AddValueList
  552.       goto ShellCodeError
  553.    endif
  554.    Set RegistryErrorIndex = $($R0)
  555.    CloseRegKey $(Key_SoftwareProduct)
  556.    CloseRegKey $(Key_SoftwareNetRules)
  557.    Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  558.       EndWait
  559.       Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterSoftware - add NetRule error"
  560.       goto FatalRegistryError
  561.    endif
  562. AddAdapterHardwareToRegistry = +
  563.    Shell $(UtilityInf), +
  564.          AddHardwareComponent, +
  565.          $(ProductHdwrName), +
  566.          $(STF_CONTEXTINFNAME), +
  567.          $(KeyName_Software)
  568.    ifint $($R4) != -1
  569.       Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  570.    endif
  571.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  572.       set ShellErrorSection = UtilityInf:AddHardwareComponent
  573.       goto ShellCodeError
  574.    endif
  575.    set RegistryErrorIndex = $($R0)
  576.    Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  577.       EndWait
  578.       Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterHardware - add component error"
  579.       CloseRegKey $($R1)
  580.       CloseRegKey $($R2)
  581.       CloseRegKey $($R3)
  582.       goto FatalRegistryError
  583.    endif
  584.    set Key_HardwareNetRules   = $($R2)
  585.    set Key_HardwareParameters = $($R3)
  586.    set AdapterNumber          = $($R4)
  587.    set NewValueList = {+
  588.        {Manufacturer, $(NoTitle), $(!REG_VT_SZ),    $(Manufacturer)},+
  589.        {Title,        $(NoTitle), $(!REG_VT_SZ),    "["$($R4)"] "$(ProductHdwrTitle)},+
  590.        {Description,  $(NoTitle), $(!REG_VT_SZ),    $(ProductHdwrDesc)},+
  591.        {ProductName,  $(NoTitle), $(!REG_VT_SZ),    $(ProductHdwrName)},+
  592.        {ServiceName,  $(NoTitle), $(!REG_VT_SZ),    $($R5)},+
  593.        {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+
  594.        {InstallDate,  $(NoTitle), $(!REG_VT_DWORD), *($(Now),1)}+
  595.        }
  596.    Shell $(UtilityInf), AddValueList, $($R1),  $(NewValueList)
  597.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  598.       set ShellErrorSection = UtilityInf:AddValueList
  599.       goto ShellCodeError
  600.    endif
  601.    CloseRegKey $($R1)
  602.    set TempProdName = """"$(ProductHdwrName)$(AdapterNumber)""""
  603.    set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  604.    set NewValueList = {+
  605.        {type,      $(NoTitle), $(!REG_VT_SZ),       $(NetRuleHardwareType)},+
  606.        {bindform,  $(NoTitle), $(!REG_VT_SZ),       $(TempBindForm)}, +
  607.        {class,     $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRuleHardwareClass)}, +
  608.        {InfOption, $(NoTitle), $(!REG_VT_SZ),       $(TccOption)}+
  609.        }
  610.    Shell  $(UtilityInf), AddValueList, $(Key_HardwareNetRules), $(NewValueList)
  611.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  612.       set ShellErrorSection = UtilityInf:AddValueList
  613.       goto ShellCodeError
  614.    endif
  615.    set RegistryErrorIndex = $($R0)
  616.    Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  617.       EndWait
  618.       Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterHardware - add NetRule error"
  619.       CloseRegKey $(Key_HardwareParameters)
  620.       CloseRegKey $(Key_HardwareNetRules)
  621.       goto FatalRegistryError
  622.    endif
  623.    CloseRegKey $(Key_HardwareNetRules)
  624.    goto AddAdapterConfigurationToRegistry
  625. AddAdapterConfigurationToRegistry = +
  626.    Debug-Output "$(STF_CONTEXTINFNAME): Entering AddAdapterConfigurationToRegistry"
  627.    Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
  628.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  629.       Shell $(UtilityInf), GetBusTypeNum
  630.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  631.          set ShellErrorSection = UtilityInf:GetBusTypeNum
  632.          goto ShellCodeError
  633.       else
  634.          set BusTypeValue = $($R1)
  635.          set BusNumberValue = 0
  636.       endif
  637.    else
  638.       set BusTypeValue = $($R1)
  639.       set BusNumberValue = $($R2)
  640.    endif
  641.    ifstr(i) $(TccOption) == "tc$arcnet"
  642.       set NewValueList = {+
  643.           {AdapterType,      $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceIsa)},+
  644.           {BusNumber,        $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
  645.           {BusType,          $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
  646.           {Interrupt,        $(NoTitle), $(!REG_VT_DWORD), $(InterruptValue)},+
  647.           {IoBase,           $(NoTitle), $(!REG_VT_DWORD), $(IoBaseValue)},+
  648.           {MediaType,        $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
  649.           {MemoryBase,       $(NoTitle), $(!REG_VT_DWORD), $(MemoryBaseValue)},+
  650.           {PacketSize,       $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
  651.           }
  652.    else-ifstr(i) $(TccOption) == "tc$tcns"
  653.       set NewValueList = {+
  654.           {AdapterType,      $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceIsa)},+
  655.           {BusNumber,        $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
  656.           {BusType,          $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
  657.           {Interrupt,        $(NoTitle), $(!REG_VT_DWORD), $(InterruptValue)},+
  658.           {IoBase,           $(NoTitle), $(!REG_VT_DWORD), $(IoBaseValue)},+
  659.           {MediaType,        $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
  660.           {MemoryBase,       $(NoTitle), $(!REG_VT_DWORD), $(MemoryBaseValue)},+
  661.           {PacketSize,       $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
  662.           }
  663.    else-ifstr(i) $(TccOption) == "tc$3147e"
  664.       set NewValueList = {+
  665.           {AdapterType,      $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceEisa)},+
  666.           {BusNumber,        $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
  667.           {BusType,          $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
  668.           {EisaCompressedId, $(NoTitle), $(!REG_VT_DWORD), $(Tc3147EisaIdValue)},+
  669.           {MediaType,        $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
  670.           {PacketSize,       $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
  671.           {SlotNumber,       $(NoTitle), $(!REG_VT_DWORD), $(SlotNumberValue)},+
  672.           }
  673.    else
  674.       set NewValueList = {+
  675.           {AdapterType,      $(NoTitle), $(!REG_VT_DWORD), $(NdisInterfaceIsa)},+
  676.           {BusNumber,        $(NoTitle), $(!REG_VT_DWORD), $(BusNumberValue)},+
  677.           {BusType,          $(NoTitle), $(!REG_VT_DWORD), $(BusTypeValue)},+
  678.           {Interrupt,        $(NoTitle), $(!REG_VT_DWORD), $(InterruptValue)},+
  679.           {IoBase,           $(NoTitle), $(!REG_VT_DWORD), $(IoBaseValue)},+
  680.           {MediaType,        $(NoTitle), $(!REG_VT_DWORD), $(MediaTypeValue)},+
  681.           {MemoryBase,       $(NoTitle), $(!REG_VT_DWORD), $(MemoryBaseValue)},+
  682.           {PacketSize,       $(NoTitle), $(!REG_VT_DWORD), $(PacketSizeValue)},+
  683.           }
  684.    Endif
  685.    Shell  $(UtilityInf), AddValueList, $(Key_HardwareParameters), $(NewValueList)
  686.    CloseRegKey $(Key_HardwareParameters)
  687.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  688.       set ShellErrorSection = UtilityInf:AddValueList
  689.       goto ShellCodeError
  690.    endif
  691.    set RegistryErrorIndex = $($R0)
  692.    Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  693.       Debug-Output $(STF_CONTEXTINFNAME)": AddAdapterConfiguration - add value list error"
  694.       goto FatalRegistryError
  695.    endif
  696.    EndWait
  697.    goto ProcessSuccessExit
  698. CheckAdapterBinding =+
  699.    Debug-Output "$(STF_CONTEXTINFNAME): Entering CheckAdapterBinding"
  700.    set Error = "CheckAdapterBinding: not required for this adapter"
  701.    goto FatalError
  702. RemoveAdapterFromRegistry = +
  703.    Debug-Output "$(STF_CONTEXTINFNAME): Entering RemoveAdapterFromRegistry"
  704.    OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_Software) $(MAXIMUM_ALLOWED) KeyToReferenceCount
  705.    Ifstr $(KeyToReferenceCount) == ""
  706.       Debug-Output "$(STF_CONTEXTINFNAME): Could not open Software Base Key"
  707.       set RefCountBeforeRemove = 2
  708.       goto InstallOptionExit
  709.    endif
  710.    GetRegValue $(KeyToReferenceCount),"RefCount", RefCountInfo
  711.    set RefCountBeforeRemove = *($(RefCountInfo), 4)
  712.    CloseRegKey $(KeyToReferenceCount)
  713.    Debug-Output "$(STF_CONTEXTINFNAME): Removing Hardware Component"
  714.    Shell $(UtilityInf), +
  715.          RemoveHardwareComponent, +
  716.          $(Manufacturer), +
  717.          $(TccBaseName), +
  718.          $(!NTN_RegBase)
  719.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  720.       set ShellErrorSection = UtilityInf:RemoveHardwareComponent
  721.       goto ShellCodeError
  722.    endif
  723.    Ifstr(i) $($R0) != NO_ERROR
  724.       Ifstr(i) $($R0) != REF_COUNT_NOT_ZERO
  725.          goto FatalRegistryError
  726.       endif
  727.    endif
  728.    ifint $(RefCountBeforeRemove) == 1
  729.       OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_SoftwareRoot) $(MAXIMUM_ALLOWED) Key_SoftwareRoot
  730.       EnumRegKey $(Key_SoftwareRoot) KeyList
  731.       EnumRegValue $(Key_SoftwareRoot) ValueList
  732.       CloseRegKey $(Key_SoftwareRoot)
  733.       Debug-Output "$(STF_CONTEXTINFNAME): Reg Key .$(KeyName_SoftwareRoot). opened"
  734.       Debug-Output "$(STF_CONTEXTINFNAME): KeyList == .$(KeyList)."
  735.       Debug-Output "$(STF_CONTEXTINFNAME): ValueList == .$(ValueList)."
  736.       ifstr $(KeyList) == "{}"
  737.          ifstr $(ValueList) == "{}"
  738.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase) $(MAXIMUM_ALLOWED) Key_SoftwareBase
  739.             DeleteRegKey $(Key_SoftwareBase) $(Manufacturer)
  740.             CloseRegKey $(Key_SoftwareBase)
  741.          endif
  742.       endif
  743.    endif
  744.    goto InstallOptionExit
  745. UpgradeSoftware = +
  746.    Debug-Output "$(STF_CONTEXTINFNAME): Entering UpgradeSoftware"
  747.    ifstr(i) $(KeyName_Software) == $(!NTN_RegBase)
  748.       OpenRegKey $(!REG_H_LOCAL) "" $(KeyName_Software) $(MAXIMUM_ALLOWED) Key_Product
  749.       Ifstr $(Key_Product) != $(Key_Null)
  750.          GetRegValue $(Key_Product),"MajorVersion", VersionInfo
  751.          set Version = *($(VersionInfo), 4)
  752.          Shell $(UtilityInf), GetInfFileNameFromRegistry, $(Key_Product)
  753.          ifint $($ShellCode) != $(!SHELL_CODE_OK)
  754.             set ShellErrorSection = UtilityInf:GetFileNameFromRegistry
  755.             goto ShellCodeError
  756.          endif
  757.          set !UG_Filename = $($R0)
  758.          ifstr(i) $(!UG_Filename) != ""
  759.             install "Install-Update"
  760.             ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  761.                goto FatalError
  762.             endif
  763.          endif
  764.          SetRegValue $(Key_Product) {MajorVersion, $(NoTitle), $(!REG_VT_SZ), $(SoftwareMajorVersion)}
  765.          SetRegValue $(Key_Product) {MinorVersion, $(NoTitle), $(!REG_VT_SZ), $(SoftwareMinorVersion)}
  766.          ifint $(Version) != $(SoftwareVersion)
  767.             Debug-Output "$(STF_CONTEXTINFNAME): Version .$(Version). != SoftwareVersion .$(SoftwareVersion)."
  768.          endif
  769.          CloseRegKey $(Key_Product)
  770.       else
  771.          goto FatalRegistryError
  772.       endif
  773.    else
  774.       OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) NetworkCardKey
  775.       Ifstr(i) $(NetworkCardKey) != $(Key_Null)
  776.          GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  777.          set ServiceName = *($(ServiceNameInfo), 4)
  778.          OpenRegKey $(NetworkCardKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRuleKey
  779.          Ifstr(i) $(NetRuleKey) != $(Key_Null)
  780.             Debug-Output "$(STF_CONTEXTINFNAME): NetRuleKey .$(NetRuleKey). != Key_Null .$(Key_Null)."
  781.          else
  782.             goto FatalRegistryError
  783.          endif
  784.          CloseRegKey $(NetRules)
  785.          CloseRegKey $(NetworkCardKey)
  786.       else
  787.          goto FatalRegistryError
  788.       endif
  789.       OpenRegKey $(!REG_H_LOCAL) +
  790.                  "" $(!NTN_ServiceBase)"\"$(ServiceName) +
  791.                  $(MAXIMUM_ALLOWED) +
  792.                  ServiceKey
  793.       Ifstr(i) $(ServiceKey) != $(Key_Null)
  794.          CloseRegKey $(ServiceKey)
  795.       else
  796.          goto FatalRegistryError
  797.       endif
  798.    endif
  799.     set iSearch = 1
  800. nextnetcard = +
  801.     Shell $(UtilityInf), FindNextNetworkCard, $(TccBaseName), $(iSearch)
  802.     set KeyNetcard = $($R0)
  803.     set iSearch = $($R1)
  804.     Debug-Output "OemNadEp.Inf: FindNextNetworkCard "$(KeyNetcard)","$(iSearch)
  805.     Ifstr $(KeyNetcard) != $(KeyNull)
  806.         Debug-Output "OemNadEp.Inf: Setting OperationsSupport value"
  807.         SetRegValue $(KeyNetcard) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
  808.         CloseRegKey $(KeyNetcard)
  809.         goto nextnetcard
  810.     Endif
  811.    goto InstallOptionExit
  812. ProcessSuccessExit = +
  813.    goto InstallOptionExit
  814. ProcessAbandonInstall = +
  815.    ForListDo $(OEM_ABANDON_OPTIONS)
  816.       Shell $(UtilityInf), +
  817.             RemoveHardwareComponent, +
  818.             $(Manufacturer), +
  819.             $(TccBaseName), +
  820.             $($)
  821.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  822.          set ShellErrorSection = UtilityInf:RemoveHardwareComponent
  823.          goto ShellCodeError
  824.       endif
  825.       set RegistryErrorIndex = $($R0)
  826.       Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  827.          goto FatalRegistryError
  828.       endif
  829.    EndForListDo
  830.    Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  831.       Shell $(UtilityInf), +
  832.             RemoveSoftwareComponent, +
  833.             $(Manufacturer), +
  834.             $(TccBaseName), +
  835.             FALSE
  836.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  837.          set ShellErrorSection = UtilityInf:RemoveSoftwareComponent
  838.          goto ShellCodeError
  839.       endif
  840.       set RegistryErrorIndex = $($R0)
  841.       Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  842.          goto FatalRegistryError
  843.       endif
  844.    endif
  845.    goto InstallOptionExit
  846. ProcessWarningMessage = +
  847.    Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  848.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  849.       set ShellErrorSection = SubroutineInf:SetupMessage
  850.       goto ShellCodeError
  851.    endif
  852.    ifstr(i) $($R1) == "OK"
  853.       goto $(to)
  854.    else-ifstr(i) $($R1) == "CANCEL"
  855.       goto $(from)
  856.    else
  857.       goto "InstallOptionExit"
  858.    endif
  859. SetNonFatalInfo = +
  860.    Set CommonStatus = STATUS_USERCANCEL
  861.    Set Severity = STATUS
  862.    goto ProcessNonFatalMessage
  863. ProcessNonFatalMessage = +
  864.    ifstr(i) $(Error) == ""
  865.       Set Severity = NONFATAL
  866.       Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  867.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  868.          set ShellErrorSection = UtilityInf:RegistryErrorString
  869.          goto ShellCodeError
  870.       endif
  871.       set Error = $($R0)
  872.    endif
  873.    Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  874.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  875.       set ShellErrorSection = SubroutineInf:SetupMessage
  876.       goto ShellCodeError
  877.    endif
  878.    ifstr(i) $($R1) == "OK"
  879.       goto $(from)
  880.    else
  881.       goto "InstallOptionExit"
  882.    endif
  883. FatalRegistryError = +
  884.    Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  885.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  886.       set ShellErrorSection = UtilityInf:RegistryErrorString
  887.       goto ShellCodeError
  888.    endif
  889.    set Error = $($R0)
  890.    goto FatalError
  891. FatalError = +
  892.    ifstr(i) $(Error) == ""
  893.       Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  894.       ifint $($ShellCode) != $(!SHELL_CODE_OK)
  895.          set ShellErrorSection = UtilityInf:RegistryErrorString
  896.          goto ShellCodeError
  897.       endif
  898.       set Error = $($R0)
  899.    endif
  900.    Shell $(SubroutineInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  901.    ifint $($ShellCode) != $(!SHELL_CODE_OK)
  902.       set ShellErrorSection = UtilityInf:SetupMessage
  903.       goto ShellCodeError
  904.    endif
  905.    goto SetFailedStatusAndExit
  906. ShellCodeError = +
  907.    Debug-Output $(STF_CONTEXTINFNAME)": Shell error, $(ShellErrorSection)"
  908.    set DlgType      = "MessageBox"
  909.    set STF_MB_TITLE = "Error: "$(FunctionTitle)
  910.    set STF_MB_TEXT  = "Shell Code Error"
  911.    set STF_MB_TYPE  = 1
  912.    set STF_MB_ICON  = 3
  913.    set STF_MB_DEF   = 1
  914.    ui start "Error Message"
  915.    goto SetFailedStatusAndExit
  916. SetFailedStatusAndExit = +
  917.    set CommonStatus = STATUS_FAILED
  918.    ifstr(i) $(OEM_ABANDON_ON) == TRUE
  919.       set OEM_ABANDON_ON = FALSE
  920.       goto ProcessAbandonInstall
  921.    endif
  922.    goto InstallOptionExit
  923. InstallOptionExit = +
  924.    Return $(CommonStatus)
  925. [Source Media Descriptions]
  926.     1 = "Windows NT Server CD-ROM", TAGFILE = cdrom_s.40
  927. [Signature]
  928.     FileType = MICROSOFT_FILE
  929. [GetSignature]
  930.     read-syms Signature
  931.     return $(FileType)
  932. [ProductType]
  933. STF_PRODUCT  = LanmanNT
  934. STF_PLATFORM = I386
  935. [Files-Inf]
  936. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  937. [Files-Driver]
  938. 1,TCARC.SYS , SIZE=999
  939. [OptListENG]
  940. OptList_1 = tc$arcnet "Arcnet/TCNS (All Types)",     "tcarc", "ARCNET/TCNS Adapter", "ARCNET or Thomas-Conrad TCNS Adapter"
  941. OptList_2 = tc$tcns,  "Thomas-Conrad TCNS",          "tcarc", "TCNS Adapter",        "Thomas-Conrad 100Mbps TCNS"
  942. [FileConstantsENG]
  943.    ProCaption              = "Windows NT Setup"
  944.    ProCancel               = "Cancel"
  945.    ProCancelMsg            = "Your ARCNET/TCNS Windows NT Networking "+
  946.                              "Adapter is not correctly installed.  Are "+
  947.                              "you sure you want to cancel copying files?"
  948.    ProCancelCap            = "Network Setup Message"
  949.    ProText1                = "Copying:"
  950.    ProText2                = "To:"
  951.    SoftwareTitle           = "ARCNET/TCNS Driver"
  952.    SoftwareDescription     = "ARCNET/TCNS Adapter Driver"
  953. [DialogConstantsENG]
  954.    Help                    = "&Help"
  955.    Exit                    = "Cancel"
  956.    OK                      = "OK"
  957.    HelpContext             = ""
  958.    Continue                = "Continue"
  959.    Cancel                  = "Cancel"
  960.    FunctionTitle           = "ARCNET/TCNS Adapter Setup"
  961.    InterruptLabel          = "&Interrupt Number:"
  962.    BaseIoLabel             = "I/O &Port Base Addr:"
  963.    MemoryLabel             = "&Memory Address:"
  964.    TcnsCaption             = "Thomas-Conrad TCNS Adapter Setup"
  965.    TcnsEISACaption         = "Thomas-Conrad TCNS (TC3147) Adapter Setup"
  966.    SlotNumberLabel         = "&Slot Number:"
  967. [LanguagesSupported]
  968.    ENG
  969.